/***********************************************************
 *
 * Gaoth
 * Copyright (c) 2011- Marcus Lundgren
 *
 * This software is provided 'as-is', without any express or implied warranty.
 * In no event will the authors be held liable for any damages arising from
 * the use of this software.
 *
 * Permission is granted to anyone to use this software for any purpose,
 * including commercial applications, and to alter it and redistribute it freely,
 * subject to the following restrictions:
 *
 *  1. The origin of this software must not be misrepresented; you must not
 *     claim that you wrote the original software. If you use this software
 *     in a product, an acknowledgment in the product documentation would be
 *     appreciated but is not required.
 *
 *  2. Altered source versions must be plainly marked as such,
 *     and must not be misrepresented as being the original software.
 *
 *  3. This notice may not be removed or altered from any source distribution.
 *
 ***********************************************************/

#pragma once

#include <SFML/Network.hpp>
#include <memory>

#include "payloads/base_payload.h"
#include "payloads/login_payload.h"
#include "payloads/login_status_payload.h"
#include "payloads/model_payload.h"

namespace gth
{
namespace shared
{
namespace network
{
class PacketManager
{
public:
    PacketManager();
    virtual ~PacketManager();

    void to_packet( const BasePayload& payload, sf::Packet& p ) const;
    std::auto_ptr<BasePayload> parse_packet( sf::Packet& p ) const;

private:
};
}
}
}
